import type { CommonNodeType, ValueSelector, VarType, Variable } from '@/components/workflow/types'
import { Model, ModelConfig } from '@/services/types/app'

export type OutputVar = Record<string, {
  type: VarType
  children: null
}>

export enum PromptSpeechType {
  Template = 'template',
  Clone = 'clone',
  CloneWithVar = 'clone_with_var'
}
export type PromptSpeechValue = {
  prompt_text?: string
  prompt_speech?: string
}


export type PromptSpeechTemplateValue = {
  gender: '男' | '女', template?: string,
}

export type PromptSpeechValueSelectorValue = {
  prompt_speech_selector?: ValueSelector
  prompt_text_selector?: ValueSelector
}

export type VideoGeneratorNodeType = CommonNodeType & {
  model: Model
  prompt_speech_type: PromptSpeechType
  prompt_speech_selector?: PromptSpeechValueSelectorValue
  prompt_speech_template?: PromptSpeechTemplateValue
  prompt_speech?: PromptSpeechValue
  speech: string
  text: string
  options: WorkflowSpeechGeneratorOptions
}

export type WorkflowSpeechGeneratorOptions = {

}